package com.leoman.post.service;

import com.leoman.common.service.GenericManager;
import com.leoman.post.entity.PostBase;
import com.leoman.user.entity.UserInfo;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.List;

/**
 * Created by 蔡琦 on 2016/6/27 0027.
 */
public interface PostBaseService extends GenericManager<PostBase> {

    //查询用户帖子列表
    Page<PostBase> page(String content, String mobile, Long category, Integer status, Integer essence, Integer type, Integer pageNum, Integer pageSize);

    // 获取帖子基本信息
    PostBase getPostInfo(Long postId, Integer type);

    //查询官方帖子列表
    Page<PostBase> findPage(String name, Long category, Integer status, Integer essence, Integer type, Integer pageNum, Integer pageSize);

    // 根据分类和帖子类型查询帖子列表
    List<PostBase> findByCategoryId(Long categoryId, Integer type);

    // 根据分类查询官方帖子列表
    List<PostBase> findByCategoryId(Long categoryId);

    // 根据分类查询对应的所有帖子列表
    List<PostBase> findListAllByCategoryId(Long categoryId);

    // 查询新增用户帖子
    List<PostBase> findListNew(Integer type);

    //查询类型查询帖子列表
    List<PostBase> findByType(Integer type);

    //查询加精帖子列表
    List<PostBase> findByEssence(Integer essence);

    //查询锁帖列表
    List<PostBase> findByStatus(Integer status);

    // 保存官方帖子
    void saveAll(Long postId,
                 Long creatorId,
                 String name,
                 Long typeList,
                 Integer type,
                 String content,
                 String startDate,
                 String description,
                 String endDate,
                 String[] tpSub,
                 String[] tpSubs,
                 String isActivity,
                 MultipartRequest multipartRequest) throws IOException, ParseException;

    // 添加直播
    void addZB(HttpServletRequest request,
               Long postId,
               Long creatorId,
               String tempAddImageIds1,
               String tempDelImageIds,
               Integer status) throws UnsupportedEncodingException;

    // 保存修改直播贴
    void saveZB(HttpServletRequest request,
                Long postId,
                Long creatorId,
                String name,
                Long typeList,
                Integer type,
                String startDate,
                String[] description,
                String tempDelImageIds,
                MultipartRequest multipartRequest) throws IOException, ParseException;

    // 保存用户帖
    Integer saveUserPost(Long creatorId,
                         Long category,
                         String description,
                         String tempAddImageIds1,
                         String tempDelImageIds);

    // 查询未被删除的帖子列表
    List<PostBase> findByDeleteStatus();

    // 删帖
    Integer deletePost(Long postId);

    // 根据用户id查询对应的帖子列表
    List<PostBase> findByUserId(Long userId);

    PostBase findOneById(Long postId);
}
